add_subdirectory(sweBoundary)

add_library( sweSolver "" )

target_sources( sweSolver PRIVATE
	sweSolver_fluxSchemes_edge.cpp
	sweSolver_fluxSchemes_edge.tpp
	sweSolver_reconstruction.tpp
	hllc.hpp
	hllc.tpp
	reconstruction.cpp
	reconstruction.hpp
	reconstruction.tpp
	sweSolver.hpp
	sweSolver.cpp
	sweSolver_boundary.cpp
	sweSolver_fluxes.cpp
	sweSolver_newState.cpp
	sweSolver_sources.cpp
	sweSolver_timeStep.cpp
	sweFunctions.hpp
	sweFunctions.cpp
	sweFunctions.tpp
	sweTiming.hpp
	sweTiming.cpp

	# friction.hpp
	infiltration.hpp
)

target_link_libraries( sweSolver PUBLIC
	solverBase
	sweBoundary
	# coupling between drainage and swmm:
	swmm5
	swmm-output
)

target_include_directories( sweSolver PUBLIC
	${CMAKE_CURRENT_SOURCE_DIR}
)

target_compile_definitions( sweSolver PUBLIC
	# SWE_STORE_WATER_ELEVATION #broken
	# SOLVER_TIME_FLUXES
	# BLOCKWISE_INTEGRATED_TIME_FLUXES
	# BLOCKWISE_INTEGRATED_PRECALC_DIFFS
	BLOCKWISE_INTEGRATED_VECTORISE_FLUXES
	BLOCKWISE_INTEGRATED_EARLY_RETURN_WHEN_DRY
)

add_subdirectory(
	blockwiseIntegrated
)